#include <iostream>
using namespace std;
#include <fcntl.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

int main() {
  //  while (1) {
  //    cout << "我是一个进程,我的pid是 " << getpid() << "父进程的pid:" <<
  //    getppid()
  //         << endl;
  //    sleep(1);
  //  }

  pid_t id = fork();
  if (id == 0) {
    //子进程
    while (1) {
      printf("我是子进程，我的pid是%d,我的ppid是%d\n", getpid(), getppid());
      sleep(1);
    }
  }

  //父进程
  while (1) {
    printf("我是父进程,我的pid是%d,我的ppid是%d\n", getpid(), getppid());
    sleep(2);
  }

  //进程等待
  int status;
  waitpid(id, &status, 0); //阻塞式等待

  return 0;
}
